package com.eureka.bclass.base;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description: 基础实体信息
 * @Author: lixing
 * @Date: 2020/4/13 7:13
 */
@Data // 提供类所有属性的 getting 和 setting 方法，此外还提供了equals、canEqual、hashCode、toString 方法
@NoArgsConstructor // 为类提供一个无参的构造方法
public class BaseEntity {
    // 管理员编号
    @TableField(exist = false)
    public Long baseAdminId;
    @TableField(exist = false)
    // 管理员账号
    public String baseAdminAccount;
    @TableField(exist = false)
    // 管理员等级
    public Integer baseAdminGrade;
    @TableField(exist = false)
    // 管理员角色编号
    public String baseAdminRoleId;
    @TableField(exist = false)
    // 管理员权限编号
    public String baseAdminPermissionId;
    /**
     * 基础类型变量
     */
    // 标识遍历
    @TableField(exist = false)
    public Boolean baseFlag;
    // 整型变量
    @TableField(exist = false)
    public Integer baseInteger;
    // 长整型变量
    @TableField(exist = false)
    public Long baseLong;
    // 字符串变量
    @TableField(exist = false)
    public String baseString;
    // 集合变量
    @TableField(exist = false)
    public List<Integer> baseIntegerList = new ArrayList<>();
    // 集合变量
    @TableField(exist = false)
    public List<Long> baseLongList = new ArrayList<>();
    // 集合变量
    @TableField(exist = false)
    public List<String> baseStringList = new ArrayList<>();
    /**
     * 发送验证码
     */
    // 登录验证码
    @TableField(exist = false)
    public String baseVerifyCode;
    // 邮件验证码
    @TableField(exist = false)
    public String baseVerifyCodeMail;
    @TableField(exist = false)
    // 短信验证码
    public String baseVerifyCodeSms;
    @TableField(exist = false)
    // 图像验证码
    public String baseVerifyCodeImg;
    /**
     * 分页
     */
    // 分页页码
    @TableField(exist = false)
    public long basePageNum;
    @TableField(exist = false)
    // 分页大小
    public long basePageSize;
    // 按照时间查询
    // 开始时间
    @TableField(exist = false)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    public Date baseCreateTimeStart;
    // 结束时间
    @TableField(exist = false)
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    public Date baseCreateTimeEnd;
    /**
     * 文件上传
     */
    //    // 上传文件的类型，详见UploadFileTypeEnum枚举
    //    @TableField(exist = false)
    //    private String baseUploadFileType;
    //    // 上传文件的业务场景，例如: cover(头像图片上传)
    //    @TableField(exist = false)
    //    private String baseUploadCategory;
    //    // 上传文件的MultipartFile集合，@RequestParam("file") MultipartFile[] multipartFiles
    //    @TableField(exist = false)
    //    private MultipartFile[] baseUploadMultipartFiles;
    /**
     * 文件下载
     */
    // 下载文件的地址。格式：/home/upload/static/123.png
    @TableField(exist = false)
    private String baseDownFileUrl;
    // 文件下载完毕后是否删除该文件
    @TableField(exist = false)
    private boolean baseDownFileDelete;
}
